The present invention relates, in general, to integrated circuits and, more particularly, to non-volatile memories.
Field Programmable Gate Array (FPGA) integrated circuits are comprised of an array of Configurable Logic Blocks (CLBs) dynamically interconnected through programmable switches. Each of the CLBs includes logic gates, clocked latches, pass-gate transistors, and feedback structures having interconnects that are also configured through programmable switches. The programmable switches are controlled by data bits stored in the static latches of the configuration memory. Thus, the specific logic functions performed within the CLB as well as the interconnect between multiple CLBs are configured by specific data in the static latches.
A disadvantage of prior art CLBs is that the static latches lose stored data when power is removed from the integrated circuit. An external non-volatile memory, such as an Electrical Erasable Programmable Read Only Memory (EEPROM), provides the data that programs the configuration memory for reprogramming the programmable switches. Typically, FPGAs are reprogrammed during power-up. This is a relatively slow process because the external non-volatile memory provides configuration data to the internal static latches associated with the programmable switches. The external non-volatile memory requires interface pins allocated for the transfer of data from the memory to the FPGA. Serial data transfer using a single interface pin allows loading data into a shift register as a minimal pin count solution. Another disadvantage is that loading pertinent design information into a shift register from an external EEPROM is easily detected by monitoring the serial bit stream of configuration data. Thus, the configuration data and, therefore, the function performed by the FPGA is known and can be copied by a competitor.
Accordingly, it would be advantageous to have a reconfiguration method capable of rapidly programming the configuration memory and the programmable switches thereby allowing logic reprogramming during normal circuit operation. The configuration of the switches should be maintained when power is lost or removed from the integrated circuit. It would be of further advantage for the method to provide data to the programmable switches without a security risk of monitoring the configuration data.